GtkApplication: load gtk/menus-common.ui resource
authorRyan Lortie <desrt@desrt.ca>
Tue, 29 Jul 2014 15:29:09 +0000 (17:29 +0200)
committerRyan Lortie <desrt@desrt.ca>
Wed, 30 Jul 2014 07:57:33 +0000 (09:57 +0200)
Allow the app to install a resource called gtk/menus-common.ui which
will always be loaded, regardless of which type of menus we are using.

https://bugzilla.gnome.org/show_bug.cgi?id=733925

gtk/gtkapplication.c

index d2a8dad0d3fc30c151e2b2da76cdaa0204583a5f..6df6d2158a275bb6cd762adab48c14d1d0cf874b 100644 (file)
@@ -559,6 +559,20 @@ gtk_application_load_resources (GtkApplication *application)
         g_free (menuspath);
       }
 
+    /* Always load from -common as well, if we have it */
+    menuspath = g_strconcat (base_path, "/gtk/menus-common.ui", NULL);
+    if (g_resources_get_info (menuspath, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL, NULL, NULL))
+      {
+        GError *error = NULL;
+
+        if (application->priv->menus_builder == NULL)
+          application->priv->menus_builder = gtk_builder_new ();
+
+        if (!gtk_builder_add_from_resource (application->priv->menus_builder, menuspath, &error))
+          g_error ("failed to load menus-common.ui: %s", error->message);
+      }
+    g_free (menuspath);
+
     if (application->priv->menus_builder)
       {
         GObject *menu;